-
Notifications
You must be signed in to change notification settings - Fork 23
Connector Implementation & Inheritance Ollama #456
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Connector Implementation & Inheritance Ollama #456
Conversation
#455 (comment) |
개요replacement of #455
백로그
커버해야하는 경계값은?
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다! 먼저 로컬 머신에서 기동하는 부분을 테스트했습니다.
확인해보니 몇가지 상의할 부분이 있었습니다.
첫째로 Model의 경우 Ollama의 네이밍 컨벤션을 고려해 유효성 검사 로직이 필요할까요?
제 생각에는 차후에 문서에 잘 반영해두면 될 것 같은데 어떠실까요?
둘째로 테스트에서 커버할 경계값을 더 추가하면 좋겠습니다.
현재는 공백, null에 대해서 다루고 있습니다.
Model의 경우에는 위에서 유효성 검사 로직 추가여부에 따라 달라질 것 같고,
Uri를 잘못된 형식으로 전달한 경우도 테스트해도 좋을 것 같습니다.
그외에 테스트 컨벤션을 잘 반영해주셨습니다. 😎😎
값 앞뒤로 trailing 공백에 대한 부분은 settings.BaseUrl!.Trim()) == true 부분에서 공백이 없어지기에 추가하지 않는다고 판단해서 추가하지 않았습니다 baseurl에 url 포맷이 아닌경우에 대한 경계값은 EnsureLanguageModelSettingsValid 메서드는 단순히string.IsNullOrWhiteSpace만 체크하기에 GetChatClientAsync에서 경우에만 추가하였습니다! |
로컬 컨테이너 배포시
👉 그래서 해야할 일은
Azure 클라우드 배포시
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트코드 잘 확인했습니다!
다른 부분을 본 다음 돌아와서 다시 전체적으로 확인해보시죠.
그전에 호스트 머신의 Ollama를 사용하기 위한 설정방법을 문서에 추가하고,
Azure 배포시 발생하는 오류를 해결해야합니다.
저도 방법을 찾아보고 코멘트 등으로 공유드리겠습니다.
말씀하신 내용 확인했습니다! 정리하자면
필요한 과정: 컨테이너 동시 실행 설정: 애플리케이션 컨테이너와 Ollama 컨테이너를 한 번에 실행하고 관리할 수 있도록 docker-compose.yml 같은 파일을 작성 모델 데이터 유지를 위한 볼륨 설정: Ollama가 모델 파일을 매번 새로 내려받지 않도록, 컨테이너 외부의 특정 경로와 컨테이너 내부의 모델 저장 경로를 볼륨으로 연결 컨테이너 간 통신 설정: 애플리케이션에서는 http://ollama:11434와 같이 컨테이너 이름을 사용해 Ollama 서비스에 접근하도록 설정 |
네 맞습니다~ 제 의견은 컨테이너화하고, Container Apps로 배포, 이후 서버리스 GPU를 사용하는 것입니다. |
제가 알고 있는 토대로 host.docker.internal:11434 방식으로 문서 추가했습니다. ollama 쪽 환경변수로 함은 $env:OLLAMA_HOST = "0.0.0.0:11434" 쪽을 말하시는것 같아서 이 부분 추가했는데 다른 부분일까요? |
네 이부분 말씀드린게 맞습니다. 현재 단계에서는 Ollama는 Azure 배포를 하지 않는데, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
다음 두가지 반영해주셔요!
1) bicep으로 배포시 오류나는 것 확인하고 수정방법 제안.
우리는 ollama를 사용하는데, 아래 구문에서 github models 관련 값이 null이어서 오류발생함! 값 유무를 보고 분기 처리해야할 것 같음.
https://github.com/aliencube/open-chat-playground/pull/456/files#diff-e800ed75064b740be458a572b91420b94ca6743a609c7318facf638f60c7028bL141
OpenAI쪽 이슈에서는 이렇게 처리했군요!
https://github.com/aliencube/open-chat-playground/pull/429/files#diff-e800ed75064b740be458a572b91420b94ca6743a609c7318facf638f60c7028bR150
2) Ollama baseurl도 처리
나중에 ollama를 Azure에서 구동할 예정이라서, 문서에 https://{{OLLAMA_PLACEHOLDER}}:11434
이런 느낌으로 연결 URL 넘겨주는 방법도 포함하고, bicep에도 해당 변수를 처리할 수 있도록 수정해주셔요.
리뷰 준비되면 댓글로 변경사항 간략히 알려주세요 전체적으로 잘 동작하는지 확인되면, |
|
넵 이제 코드 스타일과 |
말씀하신 사항 수정했습니다! |
@justinyoo 저스틴님! Ollama Connector가 거의 다 마무리 되었습니다. 이번 PR은 이렇게 마무리하고, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@donghyeon639 @tae0y 우선 이정도로 문서 관련 리뷰 코멘트 남겨뒀습니다. 찬찬히 읽어보시고 다른 문서들과 일관성을 맞춰주세요.
ollama pull llama3.2 | ||
# Verify Ollama is accessible | ||
curl http://localhost:11434/api/version |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
curl
명령어는 파워셸(윈도우OS)에서는 동작하지 않습니다. 따라서, 파워셸용 Invoke-RestMethod
커맨드로도 돌아갈 수 있게 해야 합니다.
다른 문서 보시면 이런 경우 # bash/zsh
와 # PowerShell
을 구분지어 놓은 것을 볼 수 있을 겁니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분 Invoke-RestMethod로 변경해야합니다.
Powershell에서 curl을 자동으로 Invoke-RestMethod로 바꿔 실행하긴 하는데,
CLI인자 넘기는 방식이 달라서 굳이 curl을 사용할 필요는 없더라구요.
돌아는 가는데ㅎㅎ 권장되는 방식이 아닙니다.
서버리스 GPU를 써서 Ollama 서버를 운영해야 하는데, 이렇게 하면 사용할 수 있는 지역이 세 개로 확 줄어요. 그래서 이걸 넣는 게 좋을까 고민중... 관련 문서 |
#491 PR 머지되면서 컨플릭 생겼습니다. 함께 해결해 주세요. |
@tae0y 올라마 커넥터 수정하면서 테스트 파일에 오류가 생겨서 원인 파악한 후 다시 푸쉬하겠습니다! |
@tae0y 오류를 찾는 과정에서 궁금한점이 생겼습니다! [GetChatClientAsync() 메서드에서 실제 Ollama 서버에 연결을 시도 하면서 테스트 환경에는 test.ollama:443 서버가 없어서 테스트 환경에서 오류가 발생하는것 같습니다. 그렇기에 Given_Valid_AppSettings_When_CreateChatClientAsync_Invoked_Then_It_Should_Return_ChatClient |
넵넵 분류를 통합테스트로 바꾸면 돼요. DB, 네트워크 요청 이렇게 외부 리소스에 의존하는 테스트는 통합테스트로, 의존하지 않고 테스트할 수 있는 경우 단위테스트로 분류할 수 있대요.
|
분류를 통합테스트로 바꾼다해도 테스트 환경에서 실제로 실행 중인 Ollama 서버 주소와 접속하지 못해서 오류가 발생하는 것 같습니다.. |
이번엔 통합테스트로 분류 변경해서 마무리짓고 차후에 개선 이슈로 새로 진행하면 좋을 것 같아요. 말씀하신 방법은 지금 당장은 어떻게 구현할지 잘 떠오르지 않는데, 모델을 pull 하는 객체를 mock해서 주입해줘야하거든요. 그런데 그 객체를 생성하는 메서드를 테스트하는 거잖아요? 그래서 제한이 됩니다. 더 고민한다면 방법은 있겠지만 지금 단계에선 더 파고들지 않아도 될것 같아요. 좋은 착안입니다 !! |
지금 해야할 일들을 정리해보면 크게 네가지네욥
|
해당사항 푸쉬해서 올렸습니다! |
@donghyeon639 #494 PR이 머지가 됐으므로 테스트 코드는 이를 참고해서 작성해 주세욥! 촘촘하게 작성하셔야 합니다. |
우선 현재까지 반영된걸로 먼저 확인해볼게요 |
```bash | ||
# bash/zsh - from GitHub Container Registry | ||
docker run -i --rm -p 8080:8080 ghcr.io/aliencube/open-chat-playground/openchat-playground:latest | ||
\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 별거 아닌데 요거 윗줄로 올릴까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ollama.md 스타일 컨벤션 몇개 놓친게 있어서 반영해주시고,
테스트 쪽은 내일 이어서 확인해볼게요.
먼저 이 PR로 반영된것 참고해주세요.
#494
Purpose
Does this introduce a breaking change?
Pull Request Type
What kind of change does this Pull Request introduce?
README updated?
The top-level readme for this repo contains a link to each sample in the repo. If you're adding a new sample did you update the readme?
How to Test
What to Check
Verify that the following are valid
Other Information
https://hub.docker.com/r/ollama/ollama